package com.tju.shortlink.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tju.shortlink.project.dto.req.ShortLinkGroupStatsAccessRecordReqDTO;
import com.tju.shortlink.project.dto.req.ShortLinkGroupStatsReqDTO;
import com.tju.shortlink.project.dto.req.ShortLinkStatsAccessRecordReqDTO;
import com.tju.shortlink.project.dto.req.ShortLinkStatsReqDTO;
import com.tju.shortlink.project.dto.resp.ShortLinkStatsAccessRecordRespDTO;
import com.tju.shortlink.project.dto.resp.ShortLinkStatsRespDTO;

public interface ShortLinkStatsService{

    /**
     * 获取单个短链接监控数据
     * @param requestParam 获取短链接监控入参
     * @return 短链接监控数据
     */
    ShortLinkStatsRespDTO oneShortLinkStats(ShortLinkStatsReqDTO requestParam);

    /**
     * 获取单个分组监控数据
     * @param requestParam 获取分组监控入参
     * @return 短链接监控数据
     */
    ShortLinkStatsRespDTO groupShortLinkStats(ShortLinkGroupStatsReqDTO requestParam);

    /**
     * 分页查询指定时间内短链接访问记录
     *
     * @param requestParam 获取短链接监控访问数记录数据入参
     * @return 访问记录监控数据
     */
    IPage<ShortLinkStatsAccessRecordRespDTO> shortLinkStatsAccessRecord(ShortLinkStatsAccessRecordReqDTO requestParam);

    /**
     * 分页单个分组指定时间内短链接访问记录
     *
     * @param requestParam 获取单个分组监控访问数记录数据入参
     * @return 访问记录监控数据
     */
    IPage<ShortLinkStatsAccessRecordRespDTO> shortLinkGroupStatsAccessRecord(ShortLinkGroupStatsAccessRecordReqDTO requestParam);
}